package org.groupg.practice.guiPractice.progressDemo;

import java.util.ArrayList;
import java.util.List;

/**
 * 事件总线，用于发布和订阅事件。可以使用Java的泛型接口和类来实现
 */
public class EventBus {
    private List<EventListener> listeners = new ArrayList<>();

    public void register(EventListener listener) {
        listeners.add(listener);
    }

    public void unregister(EventListener listener) {
        listeners.remove(listener);
    }

    public void post(ProgressEvent event) {
        for (EventListener listener : listeners) {
            listener.onEvent(event);
        }
    }
}

